home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 23 / AACD 23.iso / AACD / Programming / tek / list.h < prev    next >
C/C++ Source or Header  |  2001-05-12  |  1KB  |  57 lines

  1.  
  2. #ifndef _TEK_LIST_H
  3. #define    _TEK_LIST_H 1
  4.  
  5. /*
  6. **    list.h
  7. **
  8. **    lists and nodes
  9. */
  10.  
  11. #include <tek/type.h>
  12.  
  13.  
  14. typedef struct
  15. {
  16.     TAPTR succ;
  17.     TAPTR pred;
  18. }    TNODE;
  19.  
  20.  
  21. typedef struct
  22. {
  23.     TNODE *head;
  24.     TNODE *tail;
  25.     TNODE *tailpred;
  26. }    TLIST;
  27.  
  28.  
  29.  
  30. /* 
  31. **    list support macros.
  32. */
  33.  
  34. #define TInitList(list)        (list)->tailpred=(TNODE *)list;(list)->tail=TNULL;(list)->head=(TNODE *)&((list)->tail);
  35. #define    TFirstNode(list)    ((list)->head->succ ? (list)->head : TNULL)
  36. #define TLastNode(list)        ((list)->tailpred->pred ? (list)->tailpred : TNULL)
  37. #define TListEmpty(list)    (!((list)->head->succ))
  38.  
  39.  
  40.  
  41. TBEGIN_C_API
  42.  
  43.  
  44. extern TVOID TAddHead(TLIST *list, TNODE *node)                        __ELATE_QCALL__(("qcall lib/tek/list/addhead"));
  45. extern TVOID TAddTail(TLIST *list, TNODE *node)                        __ELATE_QCALL__(("qcall lib/tek/list/addtail"));
  46. extern TVOID TRemove(TNODE *node)                                    __ELATE_QCALL__(("qcall lib/tek/list/remove"));
  47. extern TVOID TInsert(TLIST *list, TNODE *node, TNODE *listnode)        __ELATE_QCALL__(("qcall lib/tek/list/insert"));
  48. extern TNODE *TRemHead(TLIST *list)                                    __ELATE_QCALL__(("qcall lib/tek/list/remhead"));
  49. extern TNODE *TRemTail(TLIST *list)                                    __ELATE_QCALL__(("qcall lib/tek/list/remtail"));
  50. extern TNODE *TSeekNode(TNODE *node, TINT numsteps)                    __ELATE_QCALL__(("qcall lib/tek/list/seeknode"));
  51.  
  52.  
  53. TEND_C_API
  54.  
  55.  
  56. #endif
  57.